MDK (keil) 没有使用到的函数编译时候会有警告的解决 您所在的位置:网站首页 keil 编译出现感叹号 MDK (keil) 没有使用到的函数编译时候会有警告的解决

MDK (keil) 没有使用到的函数编译时候会有警告的解决

2024-07-09 21:45| 来源: 网络整理| 查看: 265

在使用MDK编写STM32代码时,有些函数如果没用到会报警告:

函数定义如下:

但是STM32有很多库函数,为什么没使用到的就不会报警告呢?

这里有一个编译细节,就是函数的有效范围问题。库函数并没有使用static关键字,因为它可能会给其他文件使用,所以编译器会进行全编译,不做整个工程的调用检查,所以也不会报错,但是这样编译出来的HEX文件会大。

而我写的函数明确指定了static,因此编译器缩小了检查范围,因为在该文件中并没有使用到该函数,所以很智能地发出警告,同时不把函数编译进HEX,所以编译出来的HEX会小,虽然有警告,但这是个比较好的编程风格。

以上是出现警告的原因,那有没有方法既缩小HEX,又不报警告呢?

如果坚持要使用比较好的static方式,一定会有警告,没有办法。

要想没有警告,就不能使用static,效仿库函数,MDK编译器提供了一种专门手段用于缩小库函数的,可以借来使用,在编译选项中把”为每个函数生成一个单文件“勾上:

在勾上它之前:

勾上它之后:

可以看出,没用的函数没有被编译进最终的HEX文件,并且不会报错。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有